home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / graphics / tree / README < prev    next >
Text File  |  1993-09-01  |  11KB  |  272 lines

  1.  
  2. Tree, a program for displaying trees.
  3.  
  4.             Greg Lee, lee@uhccux.uhcc.hawaii.edu, 7/90
  5.  
  6.  
  7.             *                             *
  8.                                   Announcement         
  9.                         *        ///////\\\\\\        *
  10.                                 /             \        
  11.                         *  Tree Drawing      Program  *
  12.                                 \             /        
  13.                         *        \\\\\\\//////        *
  14.                                    Available           
  15.                         *                             *
  16.  
  17. The above is from the following tree-definition:
  18.  
  19.             \tree -b9
  20. (
  21. (*(*\O(*\O(*\O(*\O)))))
  22.     ((Announcement\O(Available\I\O (Tree Drawing()) (\ \ \ \ Program()) ) ))
  23. (*(*\O(*\O(*\O(*\O)))))
  24. )
  25.  
  26.  
  27. The `tree' program formats trees for screen display or printing with
  28. TeX.  The program, supporting utilities, and accompanying documents are
  29. free and in the public domain.  If you distribute a modified version of
  30. `tree', please keep your version in the public domain.
  31.  
  32. At the University of Hawaii, the tree program is available on the
  33. uhccux system in directory ~lingua/bin with source code and documents
  34. in directory ~lee/src/Tree.  And in the Linguistics Department, the
  35. program is available on uhl2 in directory /usr/local/bin with source
  36. code and documents in ~greg/Tree.
  37.  
  38. The predecessor program to this was written by Chris Barker, the
  39. Linguistics Board at University of California, Santa Cruz, email:
  40. barker@ling.ucsc.edu.
  41.  
  42. This version has been tested only on Unix:  SunOS 3.5, Ultrix 3.1, and
  43. SysV 3.50 (Unixpc).  It requires the `lex' utility to compile, or else
  44. `flex', which is the free version of Unix `lex' by Vern Pacson.  The
  45. Makefile is set up to use `flex'.  To compile the source, type "make",
  46. which will process the source code with flex then will invoke the C
  47. compiler.  This creates 3 programs:  `tree', `tpar', and `unpar'.  The
  48. last two are minor utilities that you may not have any need for; they
  49. are described below.  Typing "make tex" compiles `mdoc' and uses that
  50. and `tree' and `tpar' to create some .tex files with examples and
  51. a document on the tree program.
  52.  
  53. Basic usage for screen display is:  "tree textfile", where the
  54. textfile has some trees.  After you've made the program, try displaying
  55. the example files with:
  56.  
  57.     % tree sample
  58.     % tree texsample
  59.  
  60. The texsample file is intended to illustrate printed output using TeX,
  61. which you can get with the following (adapted for your local conventions
  62. for using TeX and printing):
  63.  
  64.     % tree -t texsample > texsample.tex
  65.     % tex texsample
  66.     % lpr -d texsample.dvi
  67.  
  68. And you can follow the similar procedure for the file sample.  This
  69. should get you printout of trees done with horizontal and vertical
  70. lines.  If you have a PostScript printer, the following may work to get
  71. trees made with slanty lines:
  72.  
  73.     % tree -u texsample > texsample.tex
  74.     % tex texsample
  75.     % lpr -d texsample.dvi
  76.  
  77. That is, everything the same, except use `-u' instead of `-t'.  (`-t' is
  78. for TeX; the only logic to the `-u' is that `u' comes after `t'.) If
  79. this last doesn't work right, the most likely thing to have gone wrong
  80. is that your local PostScript driver program does not treat TeX \special
  81. commands, which I've used to embed PS code, in the same way that mine
  82. does.  If that's a problem, there are two things you can do about it.
  83. (1) Find out what should be in a TeX \special to tell your driver to
  84. just spit out literally into its output whatever it finds in a \special,
  85. then modify the Makefile or the C code in the source tex.c accordingly
  86. (see `SKEY' in the code), or (2) email me and I'll send you my PS driver
  87. program (which is a modification of the free dvi2ps program from MIT).
  88.  
  89. The Makefile also provides for "make tex" to create TeXable files
  90. use.tex, sample.tex, texsample.tex, and ptsample.tex for a sort of user
  91. manual and some sample output.  If you can't get the `-u' option to
  92. work, you can change the definition of UT in the Makefile to -t.
  93.  
  94. Tree has some options for modifying or decorating trees in various ways.
  95. Some of these can be used either for all the trees in a source text file
  96. by giving the option on the command line after `tree', or for some
  97. individual tree by giving the option after the `\tree' command within
  98. the text file.  For instance, if the text has
  99.  
  100.     \tree -t (S (Q (did) (V' (you go))))
  101.  
  102. then TeX code will be generated for this particular tree in the text,
  103. but not necessarily for other trees in that text file.  Here is another
  104. example:
  105.  
  106.     % tree -L < filename
  107.     \tree -L (S(NP(N(features)))(V'(V(galore))))
  108.  
  109. The first Unix command will have `tree' omit all connecting lines under
  110. nodes for all trees in the file `filename'.  The second, as a line in a
  111. text file processed by tree, will do that for just the one tree that
  112. follows.  There are other options that apply just to single nodes within
  113. a tree, which are given as backslash plus some capital letter.  As it
  114. happens, in this instance there is an option \L for individual nodes,
  115. also:
  116.  
  117.     \tree (S(NP(N\L(features)))(V'(\L V(galore))))
  118.  
  119. which omits lines under just the two nodes `N' and `V'.  The second \L
  120. in this example has to be separated by a space from the following V so
  121. `tree' can tell that this is not a TeX command with the name `LV'.  (If
  122. it happens that you need to use a TeX command with the name `L' in a
  123. node, you could use \\L for this, but it is necessary to use \\ for
  124. TeX commands only in such cases of conflict.)
  125.  
  126. Here is a reference list of the options or commands for formatting
  127. individual nodes.  (See the man page and the "use" document for more
  128. info.) In this list, `<d>' is an optional single digit argument, and
  129. `<n>' is an obligatory non-negative integer argument.
  130.  
  131.       Command:    Option:    Function:
  132.  
  133.      \D<d> "daughter"        label discontinuous daughter
  134.      \E    "even"      -E    select basis for flatten command
  135.      \F    "flatten"      -F    move nodes to lowest level
  136.      \H    "head"        center mother over this daughter
  137.      \I    "invert"      -I    turn tree upside down
  138.      \L    "lexical"      -L    don't put lines under nodes
  139.      \M<d> "mother"        label mother of discontinuous daughter
  140.      \O    "omit"      -O    omit line above nodes
  141.      \P    "phantom"        as "omit" but retain spacing
  142.      \T    "triangle"      -T    put triangles under nodes
  143.      \R    "relational"      -R    put aligned verticals at right of nodes
  144.      \B<d> "boldness"      -b<n> do shaded triangles or bold lines (see below)
  145.               -g<n> use n as the minimal gap between nodes
  146.               -v    don't suppress TeX commands on screen
  147.               -q    suppress warnings
  148.  
  149. All commands of the form backslash plus capital letter `tree' assumes
  150. are intended for it, and it eats them up without comment, even though
  151. in most cases they don't do anything.
  152.  
  153. The option `-b<n>' has different effects depending on output is
  154. tty-style or TeX code.  The sample files have examples for the latter.
  155. For tty output, here is a series of trees showing how the connecting
  156. "lines" can be varied.  These are from the tree definition:
  157.  
  158.   \tree (bold =<n>(family\T(Martha Henry))(uncle)(aunt)(kin(Fred)(Milly\H)))
  159.  
  160. with values from 0 through 9 for <n> and with option `-b<n>':
  161.  
  162.                   bold =0
  163.          ____________|____________
  164.          |       |       |       |
  165.        family  uncle    aunt    kin
  166.     _____|______          _______|
  167.     |__________|          |      |
  168.     Martha Henry         Fred  Milly
  169.                   bold =1
  170.          +-----------+-----------+
  171.          |       |       |       |
  172.        family  uncle    aunt    kin
  173.     +----+-----+          -------|
  174.     |----------|          |      |
  175.     Martha Henry         Fred  Milly
  176.                   bold =2
  177.           ...........:........... 
  178.          :       :       :       :
  179.        family  uncle    aunt    kin
  180.      ....:.....           .......:
  181.     ::::::::::::          :      :
  182.     Martha Henry         Fred  Milly
  183.                   bold =3
  184.          |||||||||||||||||||||||||
  185.          |       |       |       |
  186.        family  uncle    aunt    kin
  187.     ||||||||||||          ||||||||
  188.     ||||||||||||          |      |
  189.     Martha Henry         Fred  Milly
  190.                   bold =4
  191.          :::::::::::::::::::::::::
  192.          :       :       :       :
  193.        family  uncle    aunt    kin
  194.     ::::::::::::          ::::::::
  195.     ::::::::::::          :      :
  196.     Martha Henry         Fred  Milly
  197.                   bold =5
  198.           ........../ \.......... 
  199.          /       :       :       \
  200.        family  uncle    aunt    kin
  201.      ..../\....           .......:
  202.     ::::::::::::          /      *
  203.     Martha Henry         Fred  Milly
  204.                   bold =6
  205.           __________/ \__________ 
  206.          /       |       |       \
  207.        family  uncle    aunt    kin
  208.      ____/\____           _______|
  209.     ||||||||||||          /      *
  210.     Martha Henry         Fred  Milly
  211.                   bold =7
  212.           <<<<<<<<<<< >>>>>>>>>>> 
  213.          /       |       |       \
  214.        family  uncle    aunt    kin
  215.      <<<<<>>>>>           <<<<<<<|
  216.     |----------|          /      *
  217.     Martha Henry         Fred  Milly
  218.                   bold =8
  219.           ////////////\\\\\\\\\\\ 
  220.          /       |       |       \
  221.        family  uncle    aunt    kin
  222.      /////\\\\\           ///////|
  223.     ||||||||||||          /      *
  224.     Martha Henry         Fred  Milly
  225.                   bold =9
  226.           ////////////\\\\\\\\\\\ 
  227.          /       |       |       \
  228.        family  uncle    aunt    kin
  229.      /////\\\\\           ///////|
  230.     |**********|          /      *
  231.     Martha Henry         Fred  Milly
  232.  
  233. The \B<d> command selects the different styles on a node-by-node
  234. basis, affecting the lines just below the node with the command.
  235. \B without argument is the same as \B9.
  236.  
  237. The utilities `tpar' and `unpar' are for trees using indentation
  238. for indicating structure rather than parenthesization.  For instance,
  239. feed this to `tpar':
  240.  
  241.     \tree
  242.     S
  243.       NP
  244.         Det\L - the
  245.         N - rain
  246.       VP - V - falls
  247.  
  248. to get back a parenthesized version that you can give to `tree':
  249.  
  250.     \tree
  251.         (S
  252.           (NP
  253.             (Det\L(the))
  254.             (N(rain)))
  255.           (VP(V(falls))))
  256.  
  257. With the option `-v', `tpar' will put some ending parens on new lines,
  258. and with the option `-t' it will turn bracketed digits and i,j,k,x,y,z
  259. into the TeX code for subscripting the digit or letter, and also
  260. translate N',A',V',P' into TeX code for putting bars over the letters.
  261. The `unpar' utility translates the other way, substituting indentation
  262. for parenthesization and, with the `-t' option, going back to the
  263. bracket and prime notation from the TeX code.  The file tpsample has
  264. example trees in indented form.
  265.  
  266. Bug reports and suggestions for changes are welcome.
  267.  
  268. Greg Lee
  269. U.S.mail: 562 Moore Hall, Dept. of Linguistics, Univ. of Hawaii, HONO, HI 96822
  270. INTERNET: lee@uhccux.uhcc.hawaii.edu
  271. BITNET:   lee@uhccux
  272.